/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ucab.desarrollo.viajesbook.actions;

import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import ucab.desarrollo.viajesbook.beans.Usuario;
import ucab.desarrollo.viajesbook.negocio.CuentaDeshabilitadaException;
import ucab.desarrollo.viajesbook.negocio.loginBO;

/**
 *
 * @author isak
 */
public class loginAction extends ActionSupport
{

    private static final long serialVersionUID = 2228074990625416790L;

    private static final String USUARIO_NO_AUTORIZADO = "El usuario introducido no está autorizado.";

    private static final String ERROR_INTERNO = "Error interno. Por favor, inténtelo otra vez en unos minutos.";


    private String user;

    private String pass;

    private String mensaje;

    @Override
    public String execute()
    {
        String destino = INPUT;      
   
        try
        {
            Usuario usuario = loginBO.esUsuarioAutorizado(this.user , this.pass);
            if(usuario!=null)
            {
                Map session = ActionContext.getContext().getSession();
                session.put("usuario", usuario);
                destino = SUCCESS;
            }
            else
            {
                setMensaje(USUARIO_NO_AUTORIZADO);
            }
        } 
        catch (CuentaDeshabilitadaException e)
        {
             setMensaje("La Cuenta Solicitada Esta Deshabilitada");
        }
        catch (Exception e)
        {
             setMensaje(ERROR_INTERNO);
        }

        return destino;
    }

    

  
    /**
     * obtener password
     * @return String
     */
    public String getPass() {
        return pass;
    }

    /**
     * asignar password
     * @param pass
     */
    public void setPass(String pass) {
        this.pass = pass;
    }

    /**
     * setear el login de usuario
     * @param user
     */
    public void setUser(String user) {
        this.user = user;
    }

    /**
     * obtener el login de usuario
     * @return
     */
    public String getUser() {
        return user;
    }

    /**
     * obtener mensaje
     * @return
     */
    public String getMensaje() {
        return mensaje;
    }

    /**
     * configurar mensaje
     * @param mensaje
     */
    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }





}
